﻿using System.Reflection;

namespace Mbs.Reflection
{
    public interface IDynamicMethodFactory
    {
        Proc CreateProcMethod(MethodInfo method);

        Func CreateFuncMethod(MethodInfo method);

        ConstructorHandler CreateConstructorMethod(ConstructorInfo constructor);

        Getter CreateGetter(FieldInfo field);

        Getter CreateGetter(PropertyInfo property);

        Setter CreateSetter(FieldInfo field);

        Setter CreateSetter(PropertyInfo property);
    }
}
